﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// 游戏内数据（数据特性）
/// 1.游戏界面的数据（ResManager资源数据除外），需要随着游戏进行而更改的
/// 2.只要是每次进入游戏需要重置（本质上相当于第一次更改）的，无论是玩家属性、还是敌人、关卡数
/// 附加3：如果此数据只有单个脚本调用，为了优化代码不需要在此定义
/// </summary>
public class GameData
{
    //游戏主相机位置（游戏背景为其子物体，连带着重置位置）
    public Vector3 mainCameraPos;

    //游戏主题
    public int gameTheme;
    
    //玩家控制角色属性（每次进入游戏需要初始化的部分，PS：皮肤等不能每次都初始化成第一个皮肤------------------>  事件广播代替
    //public Vector3 mainPlayerPos;// 玩家初始位置
    //public bool isMainPlayerActive;// 是否处于激活状态
    public bool isJumping;// 玩家跳跃状态



    public int currentScore;// 当前分数
    public int currentDiamond;// 当前游戏内获得的钻石数量

    //平台掉落
    public bool isStartDrop;// 是否开始掉落（当玩家开始跳跃一次后就开始计时掉落）
    public float DropTime;// 掉落时间
    public float dropTimeMultiple;// 平台掉落时间的倍数
    public float minDropTime;// 最小掉落时间
    public int milestone;// 里程碑

    /// <summary>
    /// 游戏界面开启时重置游戏内数据
    /// ******只要改变GameData里的游戏数据了，就需要立即更新UIGame界面的UI显示******
    /// </summary>
    public void ResetGameData()
    {        
        mainCameraPos = new Vector3(0, 0, -10);
        GameObject.Find("Main Camera").transform.position = mainCameraPos;
        //mainPlayerPos = new Vector3(0, -2, 0);
        //isMainPlayerActive = true;
        isJumping = false;
        currentScore = 0;
        currentDiamond = 0;
        isStartDrop = false;
        DropTime = 6;
        dropTimeMultiple = 0.5f;
        minDropTime = 2;
        milestone = 20;  
    }
}
